package com.bmob.lover.viewmodel

import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.viewModelScope
import com.bmob.lover.app.util.FestivalUtil
import com.bmob.lover.app.util.getCurrentUser
import com.bmob.lover.data.model.bean.User
import com.bmob.lover.data.room.AppDataBase
import com.bmob.lover.data.room.BackgroundDao
import com.theone.mvvm.base.viewmodel.BaseViewModel
import com.theone.common.callback.databind.StringObservableField
import kotlinx.coroutines.launch

//  ┏┓　　　┏┓
//┏┛┻━━━┛┻┓
//┃　　　　　　　┃
//┃　　　━　　　┃
//┃　┳┛　┗┳　┃
//┃　　　　　　　┃
//┃　　　┻　　　┃
//┃　　　　　　　┃
//┗━┓　　　┏━┛
//    ┃　　　┃                  神兽保佑
//    ┃　　　┃                  永无BUG！
//    ┃　　　┗━━━┓
//    ┃　　　　　　　┣┓
//    ┃　　　　　　　┏┛
//    ┗┓┓┏━┳┓┏┛
//      ┃┫┫　┃┫┫
//      ┗┻┛　┗┻┛
/**
 * @author The one
 * @date 2021-05-12 09:10
 * @describe TODO
 * @email 625805189@qq.com
 * @remark
 */
class LauncherViewModel: BaseViewModel() {

    val launcherBg: StringObservableField = StringObservableField()
    private var mUser: MutableLiveData<User?> = MutableLiveData()

    init {
        mUser.value = getCurrentUser()
    }

    fun getUserLiveData(): LiveData<User?> = mUser

    private val mFestivalDao: BackgroundDao by lazy {
        AppDataBase.INSTANCE.backgroundDao()
    }

    fun getFestivalBg() {
        viewModelScope.launch {
            FestivalUtil.getFestivalBg()?.let {
                mFestivalDao.getBackgroundList(it).let { list ->
                    if (list.isNotEmpty()) {
                        launcherBg.set(list[0].getFiles()[0].getImageUrl())
                    }
                }
            }
        }
    }

}